using System;
using System.Collections.Generic;
using System.Text;
using Rocket.Core.Common;

namespace Sabre.Common.Frameworks
{
    /// <summary>
    /// The Service Agent class will be used as the framework to 
    /// developed various types of agents that can be deployed 
    /// with the Sabre.WinService. This class will be the base class 
    /// which all the service agents has to be derived from.
    /// </summary>
    public abstract class ServiceAgentBase : LoggerBase
    {
        /// <summary>
        /// The agent action that needed to be activated (triggered)
        /// when stoping the service
        /// </summary>
        public abstract void Stop();
        /// <summary>
        /// The Agent action that needed to be activated (triggered)
        /// when starting the service.
        /// </summary>
        public abstract void Start();
        /// <summary>
        /// The agent action that needed to be activated (triggered)
        /// when puasing the service.
        /// </summary>
        public abstract void Pause();
        /// <summary>
        /// The agent action that needed to be activated (triggered)
        /// when restaring after a puase.
        /// </summary>
        public abstract void Continue();

    }
}
